Bearbeitung von internen Tabellen

Dies ist Teil 8 von 10 der Serie Performance-Workshop

Bei der Bearbeitung von internen Tabellen kann man mit einem einfachen Trick viel Zeit sparen. Hier zeigen wir Ihnen, was Sie beachten müssen.

Wenn Sie interne Tabellen mittels LOOP zeilenweise abarbeiten, dann sieht das Coding in etwa so aus:

DATA:
  itab LIKE ddictab OCCURS 0 WITH HEADER LINE.

LOOP AT itab.
  itab-feld1 = ‘ABC’.
  MODIFY itab.
ENDLOOP.

Mit dieser Variante verschenken Sie jedoch viel Performance!

Besser da deutlich schneller ist die folgende Version:

DATA:
  itab TYPE STANDARD TABLE OF TABLE ddictab.

FIELD-SYMBOLS:
  <itab> STRUCTURE itab DEFAULT itab.


LOOP AT itab ASSIGNING <itab>.
  <itab>-feld1 = ‘ABC’.
*** Ein Modify ist nicht nötig!!!
ENDLOOP.

Warum ist das so?

Bei der herkömmlichen LOOP-Variante mit Kopfzeile müssen zu jedem LOOP die Daten aus der Tabelle in die Kopfzeile kopiert werden. Das kostet Zeit.

Mithilfe des Feldsymbols wird direkt auf die Tabellenzeile zugegriffen, es wird also nichts kopiert. Das geht deutlich schneller.

Ein weiterer Vorteil ist, dass bei einem Modify die Daten aus der Kopfzeile nicht wieder in die Tabelle kopiert werden müssen, da der Wert direkt in der Tabellenzeile geändert wird.

Löschen von Einträgen

Das Löschen von Einträgen erfolgt mit:

DELETE itab INDEX sy-tabix.

Enno Wulff
Series Navigation<< Sub-QueriesGeschachtelte interne Tabellen >>

Leave a Comment